home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d16 / pbtool2d.arc / DEMO.BAS < prev    next >
BASIC Source File  |  1990-10-29  |  6KB  |  183 lines

  1.  
  2. $LIB ALL OFF
  3. $ERROR ALL OFF
  4.  
  5. 'Declarations for PBTools
  6.  
  7. PUBLIC Xpos%(), Ypos%(), WAttr%(), Xlen%(), Ylen%(), BAttr%(), ScrSav$(),_
  8.          Brdr%(), Shad%(), Pntr%(), CurWin%, MaxWin%
  9.  
  10. MaxWin%=20  'Defaults to 15, reset to 20 for demo.
  11.  
  12. $LINK "WINDO.PBU"
  13. $LINK "SCRNIO.PBU"
  14. $LINK "DOSIO.PBU"
  15. $LINK "EMSIO.PBU"
  16. $LINK "TOOL.PBU"
  17.  
  18. CALL InitPBScreen
  19.  
  20. CALL Fill(1,1,25,80,178,23)
  21.  
  22. CALL OpenWin(5,12,16,58,11,20,31,3,1,0)
  23. CALL WPrintC(1,"PBTools 2.0 ",0)
  24. CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr.",0)
  25. IF IsMouse% THEN Text$="Mouse" ELSE Text$="No Mouse"
  26. Text$=Text$+" detected"
  27. CALL WPrintC(4,Text$,0)
  28. IF CurDisplay%=0 THEN Mon$="MONOCHROME"
  29. IF CurDisplay%=1 THEN Mon$="CGA"
  30. IF CurDisplay%=2 THEN Mon$="EGA"
  31. IF CurDisplay%=3 THEN Mon$="MCGA"
  32. IF CurDisplay%=4 THEN Mon$="VGA"
  33. Text$=Mon$+" monitor is running in display mode"+STR$(VidMode%)
  34. CALL WPrintC(5,Text$,0)
  35. Text$="Video RAM segment located at "+HEX$(VidAddr%)+"H "
  36. CALL WPrintC(6,Text$,0)
  37. IF IsEMS% THEN Text$="EMS Version"+STR$(EMSVer%*.1) ELSE Text$="No EMS"
  38. Text$=Text$+" detected"
  39. IF IsEMS% THEN Text$=Text$+" with"+STR$(EMSFree%)+"K Bytes Free"
  40. CALL WPrintC(7,Text$,0)
  41. Text$="PBTools Demo is running on a"+STR$(CPU%)+" CPU"
  42. CALL WPrintC(8,Text$,0)
  43. Text$="System has"+STR$(INT(FRE(0)*.01))+"K Free RAM"
  44. CALL WPrintC(9,Text$,0)
  45. Text$="Current logged directory is "+CurDir$
  46. CALL WPrintC(10,Text$,0)
  47. Text$="Free space on drive "+CHR$(64+CurDrive%)+": is"
  48. Text$=Text$+STR$(INT(DrvSpace#/1024))+"K"
  49. CALL WPrintC(11,Text$,0)
  50. CALL WPrintC(14,"Press Any Key to Continue",0)
  51. I$=MouseKey$
  52. CALL CloseWin
  53. CALL OpenWin(2,20,4,45,2,30,31,3,0,0)
  54. CALL WPrintC(1,"PB Tools 2.0",0)
  55. CALL WPrintC(2,"Copyright (c) 1990 by Dave Navarro, Jr. ",0)
  56. CALL OpenWin(8,4,11,20,2,30,31,3,1,1)
  57. DIM Menu1$(1:9)
  58. Menu1$(1)=" Border Types   "
  59. Menu1$(2)=" Moving Windows "
  60. Menu1$(3)=" Recoloring     "
  61. Menu1$(4)=" Resizing       "
  62. Menu1$(5)=" Scrolling      "
  63. Menu1$(6)=" Shadows        "
  64. Menu1$(7)=" Titles         "
  65. Menu1$(8)=" Other Demos    "
  66. Menu1$(9)=" Exit Demo      "
  67. IF CurDisplay%=0 THEN Menu1$(3)=" --------------- "
  68. IF CurDisplay%=0 THEN Hilite%=Attr%(0,7) ELSE Hilite%=Attr%(1,7)
  69. XWin%=1:YWin%=2
  70.  
  71. MainMenu:
  72.   Choice%=Menu%(Menu1$(),1,9,Choice%,Hilite%)
  73.   IF Choice%<1 THEN Choice%=9:GOTO MainMenu
  74.   IF Choice%=1 THEN BorTypes
  75.   IF Choice%=2 THEN MovingWin
  76.   IF Choice%=3 THEN CycleColors
  77.   IF Choice%=4 THEN Resize
  78.   IF Choice%=5 THEN Scrolling
  79.   IF Choice%=9 THEN SayBye
  80.   GOTO MainMenu
  81.  
  82. Scrolling:
  83.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
  84.   CALL WPrintC(1,"Scroll the inside of a window any direction!",0)
  85.   CALL WPrintC(2,"Pres ESC to end scrolling demo.",0)
  86.   CALL OpenWin(8,28,10,50,2,30,31,3,0,0)
  87.   CALL WPrintC(1,"Bouncing!!",0)
  88.   Yscr%=1:XScr%=20:Xdir%=-1:Ydir%=1
  89.   LoopForEver:
  90.      IF Xdir%<0 THEN DECR XScr% ELSE INCR XScr%
  91.      IF Ydir%<0 THEN DECR YScr% ELSE INCR YScr%
  92.      IF XScr%<1 THEN Xdir%=1 ELSE IF XScr%>37 THEN Xdir%=-1
  93.      IF YScr%<3 THEN YDir%=1 ELSE IF YScr%>8 THEN YDir%=-1
  94.      IF Xdir%<0 THEN CALL ScrollWin(4) ELSE CALL ScrollWin(3)
  95.      IF Ydir%<0 THEN CALL ScrollWin(2) ELSE CALL ScrollWin(1)
  96.      FOR I%=-30000 TO 30000:NEXT I%    '  Makes Demo Readable at 42 Mhz
  97.      IF INKEY$<>CHR$(27) THEN LoopForEver
  98.   CALL CloseWin
  99.   CALL CloseWin
  100.   GOTO MainMenu
  101.  
  102. Resize:
  103.   CALL OpenWin(20,18,4,50,2,30,31,3,0,0)
  104.   CALL WPrintC(1,"Resizing windows is easy!!",0)
  105.   CALL WPrintC(2,"Press ESC to end resizing demo.",0)
  106.   CALL OpenWin(7,35,9,25,2,30,31,0,0,0)
  107.   CALL WPrint(1,2,"Resizing!!!",0)
  108.   Xlen%=25:Ylen%=9:Xdir%=-1:Ydir%=-1
  109.   KeyLoop:
  110.      IF Xdir%<0 THEN DECR Xlen% ELSE INCR Xlen%
  111.      IF YDir%<0 THEN DECR Ylen% ELSE INCR Ylen%
  112.      IF XLen%<15 THEN Xdir%=1 ELSE IF Xlen%>34 THEN Xdir%=-1
  113.      IF Ylen%<3 THEN Ydir%=1 ELSE IF Ylen%>15 THEN Ydir%=-1
  114.      IF Xdir%<0 THEN CALL ChangeWin(2) ELSE CALL ChangeWin(1)
  115.      IF Ydir%<0 THEN CALL ChangeWin(4) ELSE CALL ChangeWin(3)
  116.      IF INKEY$<>CHR$(27) THEN KeyLoop
  117.   CALL CloseWin
  118.   CALL CloseWin
  119.   GOTO MainMenu
  120.  
  121. MovingWin:
  122.   CALL OpenWin(21,17,4,50,2,30,31,0,0,0)
  123.   CALL WPrintC(1,"Use Arrow Keys to move Menu",0)
  124.   CALL WPrintC(2,"Press ESC when your finished. ",0)
  125.   CurWin%=2      'Be Careful when you change the current windo!
  126.   CALL NoShadow
  127.   EndlessLoop:
  128.     I$=GetKey$
  129.     IF I$=CHR$(27) THEN NoMove
  130.     IF I$=CHR$(0)+CHR$(77) AND XWin%<57 THEN INCR Xwin%:CALL MoveWin(1)
  131.     IF I$=CHR$(0)+CHR$(75) AND XWin%>1 THEN DECR XWin%:CALL MoveWin(2)
  132.     IF I$=CHR$(0)+CHR$(80) AND YWin%<3 THEN INCR YWin%:CALL MoveWin(3)
  133.     IF I$=CHR$(0)+CHR$(72) AND YWin%>1 THEN DECR YWin%:CALL MoveWin(4)
  134.     GOTO EndlessLoop
  135.   NoMove:
  136.     CurWin%=3
  137.     CALL CloseWin
  138.     CALL AddShadow(3)
  139.     GOTO MainMenu
  140.  
  141. CycleColors:
  142.   IF CurDisplay%=0 THEN MainMenu
  143.   CurWin%=1
  144.     FOR I%=128 TO 1 STEP -1
  145.       CALL WinColor(I%)
  146.       FOR T%=1 TO 32000:NEXT T%
  147.       IF INKEY$<>"" THEN EXIT FOR
  148.     NEXT I%
  149.   CALL WinColor%(31)
  150.   CurWin%=2
  151.   GOTO MainMenu
  152.  
  153. BorTypes:
  154.   CALL OpenWin(7,4,17,76,2,30,31,3,0,0)
  155.   IF CurDisplay%=0 THEN Normal%=Attr%(0,7) ELSE Normal%=Attr%(1,7)
  156.   FOR I%=3 TO 0 STEP -1
  157.     CALL OpenWin(8,14+(I%*15),5,13,I%,Normal%,Normal%,3,0,0)
  158.     CALL Title(1,0,"[Frame"+STR$(I%)+"]")
  159.   NEXT I%
  160.   FOR I%=4 TO 0 STEP -1
  161.     CALL OpenWin(11,8+(I%*14),5,13,I%+4,Attr%(14,4),Attr%(14,4),3,0,0)
  162.     CALL Title(1,0,"[Frame"+STR$(I%+4)+"]")
  163.   NEXT I%
  164.   FOR I%=2 TO 0 STEP -1
  165.     CALL OpenWin(14,19+(I%*17),5,14,I%+9,Attr%(15,5),Attr%(15,5),3,0,0)
  166.     CALL Title(2,0,"[Frame"+STR$(I%+9)+"]")
  167.   NEXT I%
  168.   FOR I%=1 TO 0 STEP -1
  169.     CALL OpenWin(17,28+(I%*17),5,14,I%+12,Attr%(8,7),Attr%(8,7),3,0,0)
  170.     CALL Title(2,0,"[Frame"+STR$(I%+12)+"]")
  171.   NEXT I%
  172.   I$=MouseKey$
  173.   FOR I%=0 TO 14
  174.     CALL CloseWin
  175.   NEXT I%
  176.   GOTO MainMenu
  177.  
  178. SayBye:
  179.   CALL OpenWin(1,1,25,80,0,7,7,0,1,0)
  180.   LOCATE 1,1
  181.   PRINT "Thanks for giving PB Tools 2.0 a try!"
  182.   END
  183.